1. Technical Field
The present invention relates to a data processing system, method, and server for supporting X and similar software protocols.
2. Description of the Prior Art
X is a software system having a device independent architecture for producing portable graphic user interfaces. X allows programs to display windows containing data on any hardware supporting the X protocol without relinking, recompiling, or otherwise modifying the application. The architecture of a conventional X system is based on a client-server arrangement in which client systems are connected to server systems via a network.
An X server typically comprises a personal computer work-station having input and output devices such as a graphics display screen, keyboard, and mouse. The X server process controls, via a device library, input and output devices of the personal computer. The X server process provides a portable layer between the display screen and an application.
A data processing system to which facilities are provided by an X server is conventionally referred to as an X client. An X client typically comprises an application, an X library, and a tool-kit interfacing the application to the X library. The tool-kit and the X library cooperate in providing the application with access to the facilities available from an X server via the network. In general, an X client communicates with an X server via the network using an asynchronous data protocol such as TCP/IP, DECnet, or Chaos. A single X client can connect to multiple X servers via the network. Equally, multiple X clients can connect via the network to a single X server concurrently. The distributed architecture of X allows servers and clients to operate on different machines anywhere in the network in addition to providing the aforementioned device independence.
In the context of X systems, the term display is generally taken to mean a single X server process, and the term screen is generally taken to mean a single hardware output device. A single display can support multiple screens. In general therefore, when referring to X systems, the terms display and server are interchangeable.
Conventional X systems are designed to handle a diverse range of X displays. Each X display in the range may for example support a different screen resolution, a different colour resolution, a different number of screens, different byte ordering, and different buffering. To maintain compatibility with the diverse range of X displays, conventional X systems are very generalised in nature. The generalised nature of a conventional X system necessitates flow of a relatively large volume of data between the associated X clients and X servers over the intervening network. Much of the data flow is not directly related to graphics display output. It will be appreciated therefore that X systems can be relatively slow in operation, particularly when they are implemented via slower networks.